package request

// CreateSearchTaskReq 创建寻访任务请求
type CreateSearchTaskReq struct {
	TargetProfessionalIDs []uint `json:"targetProfessionalIds" binding:"required,min=1"`
	FilterCity            string `json:"filterCity"`
	FilterGrade           string `json:"filterGrade"`
	SortStrategy          int8   `json:"sortStrategy"`
}

// GetSearchTaskListReq 获取寻访任务列表请求
type GetSearchTaskListReq struct {
	Status   int8 `json:"status" form:"status"`
	Page     int  `json:"page" form:"page" binding:"required,min=1"`
	PageSize int  `json:"pageSize" form:"pageSize" binding:"required,min=1,max=100"`
}

// GetRecommendListReq 获取推荐用户列表请求
type GetRecommendListReq struct {
	TaskId   uint64 `json:"taskId" form:"taskId" binding:"required"`
	Page     int    `json:"page" form:"page" binding:"required,min=1"`
	PageSize int    `json:"pageSize" form:"pageSize" binding:"required,min=1,max=100"`
}

// SkipRecommendReq 跳过推荐用户请求
type SkipRecommendReq struct {
	TaskId      uint64 `json:"taskId" binding:"required"`
	RecommendId uint64 `json:"recommendId" binding:"required"`
}

// CommunicateRecommendReq 沟通推荐用户请求
type CommunicateRecommendReq struct {
	TaskId       uint64 `json:"taskId" binding:"required"`
	RecommendId  uint64 `json:"recommendId" binding:"required"`
	FirstMessage string `json:"firstMessage" binding:"required"`
}

// CompleteSearchTaskReq 完成寻访任务请求
type CompleteSearchTaskReq struct {
	TaskId      uint64 `json:"taskId" binding:"required"`
	RecommendId uint64 `json:"recommendId" binding:"required"`
	Score       int    `json:"score" binding:"required,min=1,max=5"`
	Comment     string `json:"comment"`
}
